# Copyright 2016, 2017 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)

language: cpp

sudo: false

python: "2.7"

os:
  - linux
  - osx

branches:
  only:
    - master
    - develop
    - /feature\/.*/

env:
  matrix:
    - BOGUS_JOB=true

matrix:

  exclude:
    - env: BOGUS_JOB=true

  include:
    - os: linux
      compiler: g++-4.7
      env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++11
      addons:
        apt:
          packages:
            - g++-4.7
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: g++-4.8
      env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++11
      addons:
        apt:
          packages:
            - g++-4.8
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: g++-4.9
      env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++11
      addons:
        apt:
          packages:
            - g++-4.9
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: g++-5
      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++11
      addons:
        apt:
          packages:
            - g++-5
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: g++-5
      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++14
      addons:
        apt:
          packages:
            - g++-5
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: g++-5
      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++1z
      addons:
        apt:
          packages:
            - g++-5
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: g++-6
      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++11
      addons:
        apt:
          packages:
            - g++-6
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: g++-6
      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++14
      addons:
        apt:
          packages:
            - g++-6
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: g++-6
      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++1z
      addons:
        apt:
          packages:
            - g++-6
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      dist: trusty
      compiler: g++-7
      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=c++11
      addons:
        apt:
          packages:
            - g++-7
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      dist: trusty
      compiler: g++-7
      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=c++14
      addons:
        apt:
          packages:
            - g++-7
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      dist: trusty
      compiler: g++-7
      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=c++1z
      addons:
        apt:
          packages:
            - g++-7
          sources:
            - ubuntu-toolchain-r-test

    - os: linux
      compiler: clang++-3.5
      env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++11
      addons:
        apt:
          packages:
            - clang-3.5
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-precise-3.5

    - os: linux
      compiler: clang++-3.6
      env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++11
      addons:
        apt:
          packages:
            - clang-3.6
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-precise-3.6

    - os: linux
      compiler: clang++-3.7
      env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++11
      addons:
        apt:
          packages:
            - clang-3.7
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-precise-3.7

    - os: linux
      compiler: clang++-3.8
      env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++11
      addons:
        apt:
          packages:
            - clang-3.8
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-precise-3.8

    #- os: linux
    #  compiler: clang++-3.8
    #  env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++14
    #  addons:
    #    apt:
    #      packages:
    #        - clang-3.8
    #      sources:
    #        - ubuntu-toolchain-r-test
    #        - llvm-toolchain-precise-3.8

    #- os: linux
    #  compiler: clang++-3.8
    #  env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++1z
    #  addons:
    #    apt:
    #      packages:
    #        - clang-3.8
    #      sources:
    #        - ubuntu-toolchain-r-test
    #        - llvm-toolchain-precise-3.8

    - os: linux
      compiler: clang++-3.9
      env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++11
      addons:
        apt:
          packages:
            - clang-3.9
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-precise-3.9

    #- os: linux
    #  compiler: clang++-3.9
    #  env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++14
    #  addons:
    #    apt:
    #      packages:
    #        - clang-3.9
    #      sources:
    #        - ubuntu-toolchain-r-test
    #        - llvm-toolchain-precise-3.9

    #- os: linux
    #  compiler: clang++-3.9
    #  env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++1z
    #  addons:
    #    apt:
    #      packages:
    #        - clang-3.9
    #      sources:
    #        - ubuntu-toolchain-r-test
    #        - llvm-toolchain-precise-3.9

    - os: linux
      compiler: clang++-4.0
      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=c++11
      addons:
        apt:
          packages:
            - clang-4.0
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-trusty-4.0

    - os: linux
      compiler: clang++-4.0
      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=c++14
      addons:
        apt:
          packages:
            - clang-4.0
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-trusty-4.0

    - os: linux
      compiler: clang++-4.0
      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=c++1z
      addons:
        apt:
          packages:
            - clang-4.0
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-trusty-4.0

    - os: osx
      compiler: clang++
      env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11

    - os: osx
      compiler: clang++
      env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14

    - os: osx
      compiler: clang++
      env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z

install:
  - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
  - cd ..
  - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
  - cd boost-root
  - git submodule update --init tools/build
  - git submodule update --init libs/config
  - git submodule update --init tools/boostdep
  - mkdir -p libs/chrono
  - cp -r $TRAVIS_BUILD_DIR/* libs/chrono
  - python tools/boostdep/depinst/depinst.py chrono
  - ./bootstrap.sh
  - ./b2 headers

script:
  - |-
    echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD ;" > ~/user-config.jam
  - ./b2 libs/chrono/test toolset=$TOOLSET

notifications:
  email:
    on_success: always
